package com.ms.service.inter;

import com.ms.entity.NoticeGiven;
import java.util.List;

/**
 * 通知发送记录服务接口 - 定义通知发送记录相关的业务逻辑
 */
public interface NoticeGivenService {

    /**
     * 保存通知发送记录
     * @param noticeGiven 通知发送记录对象
     * @return 保存结果
     */
    boolean save(NoticeGiven noticeGiven);

    /**
     * 根据ID查找通知发送记录
     * @param id 通知发送记录ID
     * @return 通知发送记录对象
     */
    NoticeGiven findById(Integer id);

    /**
     * 根据通知ID查找通知发送记录
     * @param nId 通知ID
     * @return 通知发送记录列表
     */
    List<NoticeGiven> findByNoticeId(Integer nId);

    /**
     * 根据用户ID查找通知发送记录
     * @param uId 用户ID
     * @return 通知发送记录列表
     */
    List<NoticeGiven> findByUserId(Integer uId);

    /**
     * 根据管理员ID查找通知发送记录
     * @param mId 管理员ID
     * @return 通知发送记录列表
     */
    List<NoticeGiven> findByManagerId(Integer mId);

    /**
     * 根据主办方ID查找通知发送记录
     * @param oId 主办方ID
     * @return 通知发送记录列表
     */
    List<NoticeGiven> findByOrganizerId(Integer oId);

    /**
     * 更新通知发送记录
     * @param noticeGiven 通知发送记录对象
     * @return 更新结果
     */
    boolean update(NoticeGiven noticeGiven);

    /**
     * 删除通知发送记录
     * @param id 通知发送记录ID
     * @return 删除结果
     */
    boolean delete(Integer id);

    /**
     * 获取所有通知发送记录
     * @return 通知发送记录列表
     */
    List<NoticeGiven> findAll();

    /**
     * 根据是否已读获取通知发送记录
     * @param isRead 是否已读
     * @return 通知发送记录列表
     */
    List<NoticeGiven> findByIsRead(Integer isRead);
}